home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 14 / CU Amiga Magazine's Super CD-ROM 14 (1997)(EMAP Images)(GB)(Track 1 of 3)[!][issue 1997-09].iso / CUCD / Programming / AMOS / AMOSList0597 / AMOSLIST / effectsext.lha / StarField.AMOS / StarField.amosSourceCode
Encoding:
AMOS Source Code  |  1997-05-14  |  4.5 KB  |  175 lines

  1. ' *************************************
  2. ' *                                   *
  3. ' *   Starfield Exampleprogram V1.0   *
  4. ' *      Written by Chris Hodges      *
  5. ' *                                   *
  6. ' *************************************
  7. '
  8. NUMST=800
  9. Gosub SIMPLESTARS
  10. Gosub ZROTSTARS
  11. Gosub MORPHSTARS
  12. Gosub ZROTMORPHSTARS
  13. End 
  14. SIMPLESTARS:
  15.   Screen Open 0,320,256,4,0
  16.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  17.   Palette 0,0,0,0
  18.   Screen Display 0,128,40,320,256
  19.   Double Buffer : Autoback 0
  20.    Extension_15_0006 0
  21.    Extension_15_0020 9,NUMST
  22.   WX=Rnd(1023) : WY=Rnd(1023) : WZ=512
  23.   QUIT=0 : PV=64
  24.   Fade 2,0,$555,$999,$FFF
  25.   IPOL=0
  26.   Repeat 
  27.      Extension_15_0054 0,9,OX,OY,OZ
  28.     Add IPOL,1,-1024 To 1024
  29.     Add WX,Rnd(8)
  30.     Add WY,Rnd(8)
  31.     Add WZ,Rnd(2)
  32.     OX=X : OY=Y : OZ=Z
  33.     Add X, Extension_8_1106(WX,64) : Add Y, Extension_8_1106(WY,64)
  34.     Add Z, Extension_8_1106(WZ,16)
  35.      Extension_15_0038 0,9,X,Y,Z
  36.     Screen Swap 
  37.     Wait Vbl 
  38.     If Mouse Key Then QUIT=1 : Fade 4
  39.     If QUIT Then Dec PV
  40.   Until PV=0
  41.   Erase 9
  42.   Screen Close 0
  43. Return 
  44. ZROTSTARS:
  45.   Screen Open 0,320,256,4,0
  46.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  47.   Palette 0,0,0,0
  48.   Screen Display 0,128,40,320,256
  49.   Double Buffer : Autoback 0
  50.    Extension_15_0006 0
  51.    Extension_15_0020 9,NUMST
  52.   WX=Rnd(1023) : WY=Rnd(1023) : WZ=512
  53.   WZZ=Rnd(1023)
  54.   QUIT=0 : PV=64
  55.   Fade 2,0,$555,$999,$FFF
  56.   IPOL=0
  57.   Repeat 
  58.      Extension_15_0126 0,9,OX,OY,OZ,OZZ
  59.     Add IPOL,1,-1024 To 1024
  60.     Add WX,Rnd(8)
  61.     Add WY,Rnd(8)
  62.     Add WZ,Rnd(2)
  63.     Add WZZ,1
  64.     OX=X : OY=Y : OZ=Z : OZZ=ZZ
  65.     Add X, Extension_8_1106(WX,64) : Add Y, Extension_8_1106(WY,64)
  66.     Add Z, Extension_8_1106(WZ,16)
  67.     Add ZZ, Extension_8_1106(WZZ,3)
  68.      Extension_15_0108 0,9,X,Y,Z,ZZ
  69.     Screen Swap 
  70.     Wait Vbl 
  71.     If Mouse Key Then QUIT=1 : Fade 4
  72.     If QUIT Then Dec PV
  73.   Until PV=0
  74.   Erase 9
  75.   Screen Close 0
  76. Return 
  77. MORPHSTARS:
  78.   Gosub PREPAREIMAGE
  79.   Screen Open 0,320,256,4,0
  80.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  81.   Palette 0,0,0,0
  82.   Screen Display 0,128,40,320,256
  83.   Double Buffer : Autoback 0
  84.    Extension_15_0006 0
  85.    Extension_15_0020 9,NUMST
  86.   ' AMCAF Commands: Bank Copy 9 To 11
  87.    Extension_8_025A 9 To 11
  88.   ' AMCAF Commands: Bank Copy 9 To 12
  89.    Extension_8_025A 9 To 12
  90. '  Copy Start(10),Start(10)+1200 To Start(9) 
  91.   WX=Rnd(1023) : WY=Rnd(1023) : WZ=512
  92.   BP=1
  93.   QUIT=0 : PV=64
  94.   Fade 2,0,$555,$999,$FFF
  95.   IPOL=0
  96.   Repeat 
  97.      Extension_15_0054 0,12,OX,OY,OZ
  98.     Add IPOL,1,-1024 To 1024
  99.     Copy Start(9),Start(9)+NUMST*6 To Start(12)
  100.      Extension_15_00C8 9,11 To 10,Min(Max(Abs(IPOL)-512,0),256)
  101.     Add WX,Rnd(8)
  102.     Add WY,Rnd(8)
  103.     Add WZ,Rnd(2)
  104.     OX=X : OY=Y : OZ=Z
  105.     Add X, Extension_8_1106(WX,64) : Add Y, Extension_8_1106(WY,64)
  106.     Add Z, Extension_8_1106(WZ,16)
  107.      Extension_15_0038 0,9,X,Y,Z
  108.     Screen Swap 
  109.     Wait Vbl 
  110.     If Mouse Key Then QUIT=1 : Fade 4
  111.     If QUIT Then Dec PV
  112.   Until PV=0
  113.   Erase 3 : Erase 9 : Erase 10 : Erase 11 : Erase 12
  114.   Screen Close 0
  115. Return 
  116. ZROTMORPHSTARS:
  117.   Gosub PREPAREIMAGE
  118.   Screen Open 0,320,256,4,0
  119.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  120.   Palette 0,0,0,0
  121.   Screen Display 0,128,40,320,256
  122.   Double Buffer : Autoback 0
  123.    Extension_15_0006 0
  124.    Extension_15_0020 9,NUMST
  125.    Extension_8_025A 9 To 11
  126.    Extension_8_025A 9 To 12
  127. '  Copy Start(10),Start(10)+1200 To Start(9) 
  128.   WX=Rnd(1023) : WY=Rnd(1023) : WZ=512
  129.   WZZ=Rnd(1023)
  130.   BP=1
  131.   QUIT=0 : PV=64
  132.   Fade 2,0,$555,$999,$FFF
  133.   IPOL=0
  134.   Repeat 
  135.      Extension_15_0126 0,12,OX,OY,OZ,OZZ
  136.     Add IPOL,1,-1024 To 1024
  137.     Copy Start(9),Start(9)+NUMST*6 To Start(12)
  138.      Extension_15_00C8 9,11 To 10,Min(Max(Abs(IPOL)-512,0),256)
  139.     Add WX,Rnd(8)
  140.     Add WY,Rnd(8)
  141.     Add WZ,Rnd(2)
  142.     Add WZZ,1
  143.     OX=X : OY=Y : OZ=Z : OZZ=ZZ
  144.     Add X, Extension_8_1106(WX,64) : Add Y, Extension_8_1106(WY,64)
  145.     Add Z, Extension_8_1106(WZ,16)
  146.     Add ZZ, Extension_8_1106(WZZ,3)
  147.      Extension_15_0108 0,9,X,Y,Z,ZZ
  148.     Screen Swap 
  149.     Wait Vbl 
  150.     If Mouse Key Then QUIT=1 : Fade 4
  151.     If QUIT Then Dec PV
  152.   Until PV=0
  153.   Erase 3 : Erase 9 : Erase 10 : Erase 11 : Erase 12
  154.   Screen Close 0
  155. Return 
  156. PREPAREIMAGE:
  157.   Screen Open 0,320,32,2,0 : Screen Hide 
  158.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  159.   Print "CHRIS!"
  160.   Reserve As Work 10,NUMST*6
  161.   ST=0
  162.   For T=0 To 99
  163.     For Y=0 To 7
  164.       For X=0 To 47
  165.         If Extension_8_039E(X,Y)
  166.           Doke Start(10)+ST*6,X*64+Rnd(63)+3072
  167.           Doke Start(10)+ST*6+2,Y*64+Rnd(63)+4096
  168.           Doke Start(10)+ST*6+4,(X+Y)*(2*Sgn(((X+Y) and 1)*2-1))+(((X+Y) and 1)*512)+Rnd(7)
  169.           Inc ST
  170.           Exit If ST=NUMST,3
  171.         End If 
  172.       Next 
  173.     Next 
  174.   Next 
  175. Return